package arithmetic;

import java.util.Scanner;

/**
 * HJ22 汽水瓶
 * 知识点：
 * 1.递归
 * 2.String.split();
 * 3.Integer.parseInt(String str);
 * 描述
 * 某商店规定：三个空汽水瓶可以换一瓶汽水，允许向老板借空汽水瓶（但是必须要归还）。
 * 小张手上有n个空汽水瓶，她想知道自己最多可以喝到多少瓶汽水。
 * 数据范围：输入的正整数满足 1≤n≤100
 *
 * 注意：本题存在多组输入。输入的 0 表示输入结束，并不用输出结果。
 * 输入描述：
 * 输入文件最多包含 10 组测试数据，每个数据占一行，仅包含一个正整数 n（ 1<=n<=100 ），表示小张手上的空汽水瓶数。n=0 表示输入结束，你的程序不应当处理这一行。
 *
 * 输出描述：
 * 对于每组测试数据，输出一行，表示最多可以喝的汽水瓶数。如果一瓶也喝不到，输出0。
 *
 * 示例1
 * 输入：
 * 3
 * 10
 * 81
 * 0
 * 复制
 * 输出：
 * 1
 * 5
 * 40
 * 复制
 * 说明：
 * 样例 1 解释：用三个空瓶换一瓶汽水，剩一个空瓶无法继续交换
 * 样例 2 解释：用九个空瓶换三瓶汽水，剩四个空瓶再用三个空瓶换一瓶汽水，剩两个空瓶，向老板借一个空瓶再用三个空瓶换一瓶汽水喝完得一个空瓶还给老板
 */
public class TestHW22 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        //获取所有的输入
        String str = getInput(in);
        if (str.isEmpty())return;
        // System.out.println(str);
        dealInput(str);

    }

    public static void dealInput(String str){
        String[] strs = str.split(";");
        String results = "";
        int index = 0;
        while(index<strs.length){
            int result = 0;
            int i = Integer.parseInt(strs[index]);
            if(i<=0){
                index++;
                continue;
            }
            result = dealNum(i, result);
            results+=result+";";
            index++;
        }
        String[] r1 = results.split(";");
        for(int i = 0; i<r1.length; i++){
            System.out.println(r1[i]);
        }

    }

    public static int dealNum(int num, int result) {
        int s1 = num / 3;
        int y1 = num % 3;
        if (s1 > 0) {
            num = s1 + y1;
            result += s1;
        }
        if (s1 == 0 && y1 < 2) {
            return result;
        }
        if (s1 == 0 && y1 == 2) {
            num = 1;
            result += 1;
        }
        return dealNum(num, result);
    }

    public static String getInput(Scanner in) {
        String str = "";
        while (in.hasNextInt()) {
            int i = in.nextInt();
            // if(i<1 && i>100){
            //     return "";
            // }
            str += i + ";";
        }
        return str;
    }
}
